Hypermedia APIs (Application Program Interfaces) may be configured to use a hypermedia specification that provides a common framework for communicating with hypermedia APIs. For example, a hypermedia API may be designed to use the Hypertext Application Language (HAL) specification. HAL provides conventions for expressing hyperlinks in HAL documents formatted using a data-interchange format, such as JSON (JavaScript Object Notation) or XML (eXtensible Markup Language). HAL may be used to define concepts for resources and links. A resource may be defined using a resource tag and a link may be defined using a resource tag. Illustratively, a resource tag may represent a HTTP (Hypertext Transfer Protocol) resource. A link tag may represent a generic hypermedia control, which can be configured to trigger a HTTP request. For example, a link tag can be configured to trigger a GET request, a POST request, or a PUT request.
A link tag may include a target URI (Uniform Resource Identifier) and a link relation. A link relation may identify a link and the link relation may inform client developers about what resources are available via an API and how the resources can be interacted with. A link relation may be a URL (Uniform Resource Locator) that provides documentation for a given link and provides developers with “discoverability” of resources available through the API. Also, link relations may be used to identify links and embedded resources within a representation, infer a structure and meaning of a target resource, and indicate which requests and representation that can be submitted to a target resource.